package twelfth.字节流与字符流基本操作.字节流.InputStream;

import java.io.*;

// 前面程序都是在知道数组大小的前提下开展的 要是不知道输入的内容有多大
// 则只能通过判断是否读到文件末尾的方式来读取文件
public class 不知输入内容多大时读取文件 {
    public static void main(String[] args) throws IOException {

        // 用File类找到文件
        String path = "D:" + File.separator + "WorkSpaces" + File.separator +
                "JavaDevelopBase_start_329" + File.separator + "src" + File.separator +
                "twelfth" + File.separator + "OutputStreamDemo.txt";
        /**
         * 注意输入文件的路径 如果指定的路径不存在 则运行一定会异常
         */
        File f = new File(path);// 必须给出路径
        InputStream is = new FileInputStream(f);
        byte[] b = new byte[1024];
        // 循环判断是否读取到文件末尾
        int temp = 0;
        int len = 0;
       while((temp= is.read())!=-1){    //文件读到末尾了，则返回-1
           b[len]= (byte) temp;
           len++;
       }
        is.close();
        System.out.println("内容为：" + new String(b,0,len));
    }
}
/*
D:\WorkSpaces\Java\jdk-21\bin\java.exe "-javaagent:D:\Software\IntelliJ IDEA\IntelliJ IDEA 2023.3.2\lib\idea_rt.jar=53847:D:\Software\IntelliJ IDEA\IntelliJ IDEA 2023.3.2\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath D:\WorkSpaces\JavaDevelopBase_start_329\out\production\JavaDevelopBase_start_329 twelfth.字节流与字符流基本操作.字节流.InputStream.不知输入内容多大时读取文件
内容为：你好java
加油，少年！

Process finished with exit code 0

 */